C# SDK API文档
本文档将详细介绍C# SDK的API,如果您想要了解如何接入,建议您阅读C# SDK 使用指南获得安装并使用SDK的方法
最新版本为:1.1.0
更新时间为:2019-09-24
一、实例化类
C# SDK共提供三种Consumer
,分别为写入本地文件的LoggerConsumer
,直接上传数据的BatchConsumer
,与调试用的DebugConsumer
1. LoggerConsumer:批量实时写本地文件
LoggerConsumer(string logDirectory)
/**
*生成LoggerConsumer,文件按天切分,用于将数据写入本地文件,需要搭配传输工具上传数据
*@param logDirectory log数据保存的文件目录
*/
LoggerConsumer(String logDirectory, RotateMode rotateHourly)
/**
*生成LoggerConsumer,设置文件切分规则,用于将数据写入本地文件,需要搭配传输工具上传数据
*@param logDirectory log数据保存的文件目录
*@param rotateHourly 枚举值, DAILY 代表按天切分,HOURLY 代表按小时切分
*/
LoggerConsumer(String logDirectory, RotateMode rotateHourly, int fileSize)
/**
*生成LoggerConsumer,设置文件切分规则,用于将数据写入本地文件,需要搭配传输工具上传数据
*@param logDirectory log数据保存的文件目录
*@param rotateHourly 枚举值, DAILY 代表按天切分,HOURLY 代表按小时切分
*@param fileSize 单个log文件设置的大小,单位为M
*/
2. BatchConsumer:批量实时向服务器传输数据(不建议在生产环境中使用)
BatchConsumer(string serverUrl,string appId)
/**
*生成LoggerConsumer,用于将数据写入本地文件,需要搭配传输工具上传数据
*@param serverUrl 传输的url
*@param appId 项目的APPID
* 默认传输:30条
* 默认的请求超时时间:30s
*/
BatchConsumer(string serverUrl,string appId, int batchSize, int requestTimeoutSecond)
/**
*生成LoggerConsumer,用于将数据写入本地文件,需要搭配传输工具上传数据
*@param serverUrl 传输的url
*@param appId 项目的APPID
*@param batchSize 设置一次传输多少条数据
*@param requestTimeoutSecond 设置请求超时时间,默认是30s,单位为秒
*/
3. DebugConsumer:调试用的实例,逐条上报,如果存在数据错误,数据将无法入库,同时将会返回详细的错误原因
DebugConsumer(string serverUrl, String appId)
/**
*生成DebugConsumer,用于数据调试
*@param serverUrl 传输的url
*@param appId 项目的APPID
*/
4. 获得SDK实例
ThinkingDataAnalytics(IConsumer consumer)
/**
* 获得SDK实例,接收一个Consumer的实例化对象
* @param consumer BatchConsumer或LoggerConsumer实例
*/
二、数据操作:
1. 上传事件
void Track(string account_id, string distinct_id, string event_name, Dictionary<string, object> properties)
/**
* 上传事件
* @param account_id 账号ID
* @param distinct_id 访客ID,账号ID与访客ID必须传入一个
* @param event_name 事件名称
* @param properties 事件属性,支持的类型为字符串、数值类、bool、DateTime
*/
2. 设置公共属性
void SetPublicPropperties(Dictionary<string, object> properties)
/**
* 设置公共属性,只用于track接口,其他接口无效,每次上传事件时自动添加设置的公共属性
* @param properties 公共属性
*/
3. 清除公共属性
void ClearPublicProperties()
/**
* 清空所有的公共事件属性,在下次设置之前,上传事件将不再带有公共属性
*/
4. 设置用户属性
void UserSet(string account_id,string distinct_id, Dictionary<string, object> properties)
/**
* 设置用户属性,如果该用户已经存在该属性,则覆盖,如果不存在则新建该属性,并赋值
* @param account_id 账号ID
* @param distinct_id 访客ID,账号ID与访客ID必须传入一个
* @param properties 需要被设置的用户属性
*/
5. 设置单次用户属性
void UserSetOnce(string account_id,string distinct_id, Dictionary<string, object> properties)
/**
* 设置用户属性,如果该用户已经存在该属性,不进行覆盖,如果不存在则新建该属性,并赋值
* @param account_id 账号ID
* @param distinct_id 访客ID,账号ID与访客ID必须传入一个
* @param properties 需要被设置的用户属性
*/
void UserSetOnce(string account_id,string distinct_id, string property, object value) 这个接口只能设置单个key对应的内容
/**
* 设置用户属性,如果该用户已经存在该属性,不进行覆盖,如果不存在则新建该属性,并赋值
* @param account_id 账号ID
* @param distinct_id 访客ID,账号ID与访客ID必须传入一个
* @param property 需要被设置的用户属性的字段名
* @param value 需要被设置的用户属性的属性值
*/
6. 累加用户属性
void UserAdd(string account_id,string distinct_id, Dictionary<string, object> properties)
/**
* 累加用户属性,只支持数字属性
* @param account_id 账号ID
* @param distinct_id 访客ID,账号ID与访客ID必须传入一个
* @param properties 需要做累加操作的用户属性
*/
void UserAdd(string account_id,string distinct_id, string property, long value)
/**
* 累加用户属性,只支持数字属性
* @param account_id 账号ID
* @param distinct_id 访客ID,账号ID与访客ID必须传入一个
* @param property 累加操作的用户属性的字段名
* @param value 累加操作的用户属性的属性值
*/
7. 删除用户
void UserDelete(string account_id,string distinct_id)
/**
* 删除用户的接口,请注意该操作可能产生不可逆的后果,请慎用
* @param account_id 账号ID
* @param distinct_id 访客ID,账号ID与访客ID必须传入一个
*/
8. 立即上传数据
void Flush()
/**
* 立即提交数据到相应的接收器
*/
9. 关闭并退出SDK
void Close()
/**
* 关闭并退出sdk
*/